#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 7;

// bit[i] 只保存a[i-lowbit(i)+1]~~a[i]的和
// 7> 0111 bit[7]=a[7]
// 4> 0100 bit[4]=a[1]+...+a[4]
int lowbit(int x) {return x & (-x);}
int n, q, a[N];
ll bit[N];
// 查询1-x的前缀和 
ll query(int x) { // sum 1--x
	ll s = 0;
	for(; x; x -= lowbit(x)) 
		s += bit[x];
	return s;
} 
// 单点修改 加上 s 
// 1>0001  : 1 2 4
// 2>0010  : 2 4 8
// 3>0011  : 3 4 8 
// 4>0100  : 4 8 16
// 5>0101  : 5 6 8 16 
void modify(int x, ll s) {
	for(; x <= n; x += lowbit(x))
		bit[x] += s;
} 
int main() {
	cin >> n >> q;
	for(int i = 1; i <= n; i++) {
		cin >> a[i];
		modify(i, a[i]);
	} 
	// 操作
	for(int i = 1; i <= q; i++) {
		int ty;
		cin >> ty;
		if(ty == 1) { // 修改 
			int x, d; //把a[x]直接改成d (加上 d - a[x])
			cin >> x >> d;
			modify(x, d - a[x]);
			a[x] = d;
		} else { // 查询1~x前缀和 
			int x;
			cin >> x;
			cout << query(x) << "\n"; 
		} 
	}
	
	return 0;
}